package com.zhongyu.controller;

import com.zhongyu.vo.ResultVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authc.UnknownAccountException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

//控制层全局异常处理器
@RestControllerAdvice
/*@ExceptionHandler全局异常处理
@InitBinder应用到所有
@RequestMapping方法执行前初始化数据绑定器
@ModelAttribute把值绑定到model中，使全局@RequestMapping可以获取到该值*/
@Slf4j
public class GlobalExceptionHandler {

   /* @ExceptionHandler(RuntimeException.class)
    public ResultVo handleException(RuntimeException ex){
      //  log.error(ex.getMessage(),ex);
        log.error("查询过程出现异常！",ex);
        return ResultVo.failure("用户操作失败！");

    }*/

    @ExceptionHandler(RuntimeException.class)
    public ResultVo handleException(RuntimeException ex){
        if (ex instanceof UnknownAccountException){
            log.error("该用户没有授权！",ex);
        }else {
            log.error("全局异常处理器捕获到异常！",ex);//主要针对查询
        }

        return ResultVo.failure("用户操作失败！");

    }

}
